package com.cskaoyan._02extends._01introduction;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/8 11:05
 **/
/*
继承:
    复用代码(复用父类的成员:成员变量,成员方法,不涉及static)

语法:
    权限修饰符 class 类名 extends 被继承的类/已有的类 {类体}
    说明:
        1.一个类通过extends(扩展)关键字去继承另一类的时候,这个类被称为子类(subClass),
        被继承的类称为父类(基类baseClass,超类superClass)
        2.一个类继承了父类,就拥有了父类的成员(成员变量,成员方法)
        3.一个子类还可以拥有自己的成员(在父类的基础上进行扩展)
        4.父类中没有的,子类无法继承

使用继承进行改进:
1. 人类：有姓名属性，以及吃饭这个行为
2. 教师类：有姓名，教师号两个属性，同时有吃饭，教学两种行为
3. 学生类：有姓名，学号两个属性，同时有吃饭，学习两种行为
 */
public class Demo2 {
    public static void main(String[] args) {
        Teacher2 t = new Teacher2();
        t.name = "张老师";
        t.eat();
        t.teach();
        t.sleep();
        System.out.println("------------");
        Student2 s = new Student2();
        s.name = "小明";
        s.eat();
        s.study();
        s.sleep();
    }
}
// 父类人类
class Person2{
    String name;

    public void eat() {
        System.out.println(name + "吃饭");
    }

    public void sleep() {
        System.out.println("sleep");
    }
}

class Teacher2 extends Person2{
    int tID;

    public void teach() {
        System.out.println(name + "在上课");
    }
}

class Student2 extends Person2{
    int sID;

    public void study() {
        System.out.println(name + "正在学习");
    }
}